﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using SkypeBot.Core;

namespace SkypeBotCore
{
    public static class MarasHandler
    {
        private static string[] arrInitialBase = { "Марас обозвался...", "Кстате Марас, а где твоя базука?", "Марас, всем интересно, када уже свадьба?", "Тарас, гопни мне айфон пятый!!", "Го йобнем литруху!", "Как там Изабелла поживает ?", "Когда там уже следующая игра ЧГК ?", "Пердатель обозвялся....", "Шо то ты роспизделся...", "Как там Киевская пожывает?", "Марас, го баб вжарим!!!" };
        private static string strPathToFile = Path.Combine(Path.GetDirectoryName(Assembly.GetAssembly(typeof(Core)).CodeBase), "MarasDataBase.xml").Remove(0,6);

        static MarasHandler()
        {
            if (!File.Exists(strPathToFile))
            {
                XMLManager.Serialize(arrInitialBase, typeof(string[]),strPathToFile);
            }
        }

        public static void HandleMaras(Message objMessage)
        {
            if(objMessage.SenderName == "moriarti1990")
            {
                string[] arrMarasBase; 
                arrMarasBase = (string[])XMLManager.Deserialize(typeof(string[]), strPathToFile);
                RandomGenerator objRandomGenerator = new RandomGenerator();
                int mintRandomAnswer = objRandomGenerator.Next(0, arrMarasBase.Length);
                int mintRandomChance = objRandomGenerator.Next(0, 100);
                if (mintRandomChance < 20)
                {
                    string strAnswer = arrMarasBase[mintRandomAnswer];
                    Responce objResponceToMaras = new Responce(strAnswer);
                    Core.Instance.SendToRecievers(objResponceToMaras);
                }
            }
        }

        public static void Save(string strNewAnswer)
        {
            string[] arrMarasBase = (string[])XMLManager.Deserialize(typeof(string[]),strPathToFile);
            List<string> listMaras = arrMarasBase.ToList<string>();
            if (!listMaras.Contains(strNewAnswer))
            {
                listMaras.Add(strNewAnswer);
                arrMarasBase = listMaras.ToArray<string>();
                XMLManager.Serialize(arrMarasBase, typeof(string[]), strPathToFile);
            }
        }
    }
}
